home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / mac / bonus / peter_le / talk_sou / my_libra / mytracki.uni < prev    next >
Text File  |  1992-04-20  |  1KB  |  66 lines

  1. unit MyTrackIdle;
  2.  
  3. { This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
  4.  
  5. interface
  6.  
  7.     function IdleSince: longInt;  {TickCount at last no idle time}
  8.     procedure InitTrackIdle;
  9.     procedure FinishTrackIdle;
  10.     procedure TrackIdle;
  11.  
  12. implementation
  13.  
  14.     type
  15.         keyLongMap = array[1..4] of longInt;
  16.  
  17.     var
  18.         lastmoved: longInt;  { Last time the cursor was moved, used for idle timing }
  19.         lastpos: point;
  20.         lastkeymap: keyLongMap;
  21.  
  22.     function IdleSince: longInt;  {TickCount at last no idle time}
  23.     begin
  24.         IdleSince := lastmoved;
  25.     end;
  26.  
  27.     procedure MyGetMouse (var pt: point); { Handles not having quickdraw around }
  28.         var
  29.             event: eventRecord;
  30.             dummy: boolean;
  31.     begin
  32.         dummy := OSEventAvail(0, event);
  33.         pt := event.where;
  34.     end;
  35.  
  36.     procedure TrackIdle;
  37.         var
  38.             pt: point;
  39.             km: keyLongMap;
  40.     begin
  41.         pt := lastpos;
  42.         MyGetMouse(lastpos);
  43.         if (abs(pt.h - lastpos.h) > 2) or (abs(pt.v - lastpos.v) > 2) then begin
  44.             lastmoved := TickCount;
  45.         end
  46.         else begin
  47.             GetKeys(keyMap(km));
  48.             if (km[1] <> lastkeymap[1]) or (km[2] <> lastkeymap[2]) or (km[3] <> lastkeymap[3]) or (km[4] <> lastkeymap[4]) then begin
  49.                 lastmoved := TickCount;
  50.                 lastkeymap := km;
  51.             end;
  52.         end;
  53.     end;
  54.  
  55.     procedure InitTrackIdle;
  56.     begin
  57.         MyGetMouse(lastpos);
  58.         lastmoved := TickCount;
  59.         GetKeys(keyMap(lastkeymap));
  60.     end;
  61.  
  62.     procedure FinishTrackIdle;
  63.     begin
  64.     end;
  65.  
  66. end.